বিটওয়াইজ অপারেটরস হল সেই অপারেটরগুলো যা সরাসরি বিটের স্তরে কাজ করে। C++ এ বিটওয়াইজ অপারেটরগুলি বিভিন্ন বিট-লেভেল অপারেশনের জন্য ব্যবহৃত হয়। এগুলি সংখ্যার বাইনারি প্রতিনিধিত্বের উপর ভিত্তি করে কাজ করে এবং কম্পিউটিংয়ে খুবই গুরুত্বপূর্ণ, বিশেষ করে মেমোরি ম্যানেজমেন্ট এবং অপ্টিমাইজেশনের ক্ষেত্রে।
সি++ এ বেশ কিছু বিটওয়াইজ অপারেটর রয়েছে, যেগুলো নিচে উল্লেখ করা হলো:
অপারেটর | নাম | উদাহরণ | বর্ণনা |
---|---|---|---|
& | AND | a & b | উভয় বিট ১ হলে ১। |
| | OR | a । b | যেকোনো একটি বিট ১ হলে বিট ১ হয় |
^ | XOR | a ^ b | দুই বিট ভিন্ন হলে ১। |
~ | NOT | ~a | প্রতিটি বিট বিপরীত করে। |
<< | বিট শিফট বামে | a << 2 | বিটগুলোকে বামে সরায় এবং শূন্য পূরণ করে। |
>> | বিট শিফট ডানে | a >> 2 | বিটগুলোকে ডানে সরায় এবং শূন্য পূরণ করে। |
&
)বিটওয়াইজ AND অপারেটর প্রতিটি বিটের উপর AND অপারেশন করে। কেবলমাত্র উভয় বিট ১ হলে ফলস্বরূপ বিট ১ হয়, অন্যথায় ০ হয়।
উদাহরণ:
#include <iostream>
using namespace std;
int main() {
int a = 5; // 0101
int b = 3; // 0011
int result = a & b; // 0001 = 1
cout << "a & b: " << result << endl; // Output: a & b: 1
return 0;
}
|
)বিটওয়াইজ OR অপারেটর প্রতিটি বিটের উপর OR অপারেশন করে। যেকোনো একটি বিট ১ হলে ফলস্বরূপ বিট ১ হয়।
উদাহরণ:
#include <iostream>
using namespace std;
int main() {
int a = 5; // 0101
int b = 3; // 0011
int result = a | b; // 0111 = 7
cout << "a | b: " << result << endl; // Output: a | b: 7
return 0;
}
^
)বিটওয়াইজ XOR অপারেটর প্রতিটি বিটের উপর XOR অপারেশন করে। দুই বিট ভিন্ন হলে ফলস্বরূপ বিট ১ হয়, অন্যথায় ০ হয়।
উদাহরণ:
#include <iostream>
using namespace std;
int main() {
int a = 5; // 0101
int b = 3; // 0011
int result = a ^ b; // 0110 = 6
cout << "a ^ b: " << result << endl; // Output: a ^ b: 6
return 0;
}
~
)বিটওয়াইজ NOT অপারেটর একটি সংখ্যা বা ভ্যারিয়েবলের প্রতিটি বিট উল্টো করে। অর্থাৎ ১ কে ০ এবং ০ কে ১ করে।
উদাহরণ:
#include <iostream>
using namespace std;
int main() {
int a = 5; // 0101
int result = ~a; // 1010 (বাইনারি)
cout << "~a: " << result << endl; // Output: ~a: -6 (দুইয়ের পরিপূরক)
return 0;
}
বিঃদ্রঃ: বিটওয়াইজ NOT অপারেটরের আউটপুটে সংখ্যা নেগেটিভ হতে পারে কারণ এটি দুইয়ের পরিপূরক নোটেশনে কাজ করে।
<<
)বিট শিফট অপারেটর বামে <<
ব্যবহার করে একটি সংখ্যা নির্দিষ্ট সংখ্যক বিট বামে সরায়। প্রতিটি শিফটে ডানে শূন্য পূরণ করে।
উদাহরণ:
#include <iostream>
using namespace std;
int main() {
int a = 5; // 0101
int result = a << 1; // 1010 = 10
cout << "a << 1: " << result << endl; // Output: a << 1: 10
return 0;
}
>>
)বিট শিফট অপারেটর ডানে >>
ব্যবহার করে একটি সংখ্যা নির্দিষ্ট সংখ্যক বিট ডানে সরায়। প্রতিটি শিফটে বামে শূন্য পূরণ করে।
উদাহরণ:
#include <iostream>
using namespace std;
int main() {
int a = 5; // 0101
int result = a >> 1; // 0010 = 2
cout << "a >> 1: " << result << endl; // Output: a >> 1: 2
return 0;
}
বিটওয়াইজ অপারেটরস C++ প্রোগ্রামিংয়ে সরাসরি বিট লেভেলে কাজ করার জন্য ব্যবহৃত হয়। এগুলো মেমোরি ম্যানেজমেন্ট, কম্পিউটিং পারফরম্যান্স অপটিমাইজেশন, এবং দ্রুত গাণিতিক অপারেশনের জন্য অত্যন্ত কার্যকরী। বিটওয়াইজ অপারেটরস প্রোগ্রামারদেরকে প্রোগ্রামের আরও বেশি নিয়ন্ত্রণ এবং দক্ষতা প্রদান করে, যা জটিল সমস্যা সমাধানে সহায়ক।
common.read_more